const { app, BrowserWindow, ipcMain } = require('electron');
import StartUp from './startup';
const { Menu } = require('electron');
var path = require('path');
function createWindow() {
  // 创建浏览器窗口
  const win = new BrowserWindow({
    width: 1366,
    height: 768,
    minHeight: 768,
    minWidth: 1366,
    frame: false,
    titleBarStyle: 'hidden',
    webPreferences: {
      nodeIntegration: true,
    },
  });
  //接收最小化命令
  ipcMain.on('window-min', function() {
    win.minimize();
  });
  //接收最大化命令
  ipcMain.on('window-max', function() {
    if (win.isMaximized()) {
      win.restore();
    } else {
      win.maximize();
    }
  });
  //接收关闭命令
  ipcMain.on('window-close', function() {
    win.close();
  });
  //打开调试工具
  ipcMain.on('dev-open', function() {
    // 打开开发者工具
    win.webContents.openDevTools();
  });

  Menu.setApplicationMenu(null);
  if (process.env.NODE_ENV === 'dev') {
    //测试环境
    win.loadURL('http://localhost:8000/');
    // 打开开发者工具
    win.webContents.openDevTools();
  } else {
    //正式环境
    win.loadFile(path.join(__dirname, '../dist/index.html'));
  }

  (async () => {
    await StartUp.Init();
  })();
}

app.allowRendererProcessReuse = false;
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(createWindow);

// Quit when all windows are closed.
app.on('window-all-closed', () => {
  // 在 macOS 上，除非用户用 Cmd + Q 确定地退出，
  // 否则绝大部分应用及其菜单栏会保持激活。
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('activate', () => {
  // 在macOS上，当单击dock图标并且没有其他窗口打开时，
  // 通常在应用程序中重新创建一个窗口。
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});
